home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / info-service / www / src / WWW / Library / Implementation / CommonMakefile next >
Encoding:
Makefile  |  1993-06-21  |  9.6 KB  |  293 lines

  1. #    Common Makefile for W3 Library Code
  2. #    -----------------------------------
  3. #
  4. #    (c) CERN 1990, 1991 -- see Copyright.html for conditions
  5. #
  6. # This file should be invariant between systems.
  7. #    DEPENDENCIES NOT COMPLETE @@
  8. #
  9. #    make        Compile and link the software (private version)
  10. #    make install    Copy it into the system (implies make)
  11. #    make update    Copy installed version into installed version
  12. #    make uninstall    Unlink installed version from the system
  13. #    make clean    Remove intermediate files
  14. #    make cleanall    Remove intremediate files and products
  15. #    
  16. # Macros required to be defined already for make:
  17. #
  18. # CC        The C compiler
  19. # CFLAGS    Flags for $(CC) -- except the -I which are below
  20. # LFLAGS    Flags for ld
  21. #
  22. # WWW           The WWW source tree directory
  23. #
  24. # Macros needed for make install:
  25. #
  26. # LIBDIR    Directory for installed library
  27. #______________________________________________________________________
  28.  
  29. #  If this env var is set to something else Some makes will use that instead
  30. SHELL = /bin/sh
  31.  
  32. #    .h files are distributed but originally are made from the
  33. #    self-documenting hypertext files.
  34.  
  35. .SUFFIXES: .h .html
  36. .html.h:
  37. #    - chmod +w $*.h
  38.     www -w90 -na -to text/x-c $*.html > $*.h
  39. #    chmod -w $*.h
  40.  
  41. # If this is actually run in a subdirectory,
  42. #
  43. # WWW = ../../..
  44. # WWW = ../..    For [cernlib] build in this directory
  45.  
  46. WC = $(WWW)/Library
  47. CMN = $(WWW)/Library/Implementation/
  48.  
  49. # Where shall we put the objects and built library?
  50.  
  51. LOB = $(WTMP)/Library/$(WWW_MACH)
  52.  
  53. # Only needed if HTWAIS.c is to be compiled. Put into your Makefile.include
  54. #   WAIS = YES
  55. #   WAISINC = -I../../../freeWAIS/ir
  56. #   WAISCFLAGS = -DDIRECT_WAIS
  57. #
  58.  
  59. # This path, if relative, is taken relative to the directory
  60. # in which this makefile is, not the pwd.  This screws up the 
  61. # recursive invocation
  62. # include $(CMN)Version.make
  63. include $(ABS)$(WWW)/Library/Implementation/Version.make
  64.  
  65. # XMOsAIC hack is only for server to cope with xmosaic kludge for mmedia
  66. CFLAGS2 = $(CFLAGS) $(WAISCFLAGS) -I$(CMN) -DXMOSAIC_HACK
  67.  
  68. CERNLIBBIN = $(WWW)/bin
  69.  
  70. COMMON = $(LOB)/HTParse.o $(LOB)/HTAccess.o $(LOB)/HTTP.o \
  71.     $(LOB)/HTFile.o    $(LOB)/HTBTree.o $(LOB)/HTFTP.o $(LOB)/HTTCP.o \
  72.     $(LOB)/SGML.o $(LOB)/HTML.o $(LOB)/HTMLDTD.o $(LOB)/HTChunk.o \
  73.     $(LOB)/HTPlain.o $(LOB)/HTWriter.o $(LOB)/HTFWriter.o \
  74.     $(LOB)/HTMLGen.o \
  75.     $(LOB)/HTAtom.o $(LOB)/HTAnchor.o $(LOB)/HTStyle.o \
  76.     $(LOB)/HTList.o $(LOB)/HTString.o $(LOB)/HTAlert.o \
  77.     $(LOB)/HTRules.o $(LOB)/HTFormat.o $(LOB)/HTInit.o $(LOB)/HTMIME.o \
  78.     $(LOB)/HTHistory.o $(LOB)/HTNews.o $(LOB)/HTGopher.o \
  79.     $(LOB)/HTTelnet.o $(LOB)/HTWSRC.o $(HTWAIS)
  80.  
  81. CFILES = $(CMN)HTParse.c $(CMN)HTAccess.c $(CMN)HTTP.c $(CMN)HTFile.c \
  82.         $(CMN)HTBTree.c \
  83.     $(CMN)HTFTP.c   $(CMN)HTTCP.c     $(CMN)SGML.c $(CMN)HTML.c    \
  84.     $(CMN)HTMLDTD.c \
  85.     $(CMN)HTPlain.c    $(CMN)HTWriter.c  $(CMN)HTFWriter.c \
  86.         $(CMN)HTMLGen.c    \
  87.     $(CMN)HTChunk.c $(CMN)HTAtom.c   $(CMN)HTAnchor.c $(CMN)HTStyle.c \
  88.     $(CMN)HTList.c  $(CMN)HTString.c $(CMN)HTAlert.c $(CMN)HTRules.c \
  89.     $(CMN)HTFormat.c $(CMN)HTInit.c $(CMN)HTMIME.c $(CMN)HTHistory.c \
  90.     $(CMN)HTNews.c  $(CMN)HTGopher.c $(CMN)HTTelnet.c \
  91.     $(CMN)HTWAIS.c  $(CMN)HTWSRC.c
  92.  
  93. HFILES = $(CMN)HTParse.h $(CMN)HTAccess.h $(CMN)HTTP.h $(CMN)HTFile.h \
  94.     $(CMN)HTBTree.h $(CMN)HTFTP.h $(CMN)HTTCP.h \
  95.     $(CMN)SGML.h $(CMN)HTML.h $(CMN)HTMLDTD.h $(CMN)HTChunk.h \
  96.     $(CMN)HTPlain.h        $(CMN)HTWriter.h \
  97.     $(CMN)HTFWriter.h     $(CMN)HTMLGen.h    \
  98.     $(CMN)HTStream.h \
  99.     $(CMN)HTAtom.h $(CMN)HTAnchor.h $(CMN)HTStyle.h \
  100.     $(CMN)HTList.h \
  101.     $(CMN)HTString.h $(CMN)HTAlert.h $(CMN)HTRules.h \
  102.     $(CMN)HTFormat.h $(CMN)HTInit.h \
  103.     $(CMN)HTMIME.h $(CMN)HTHistory.h $(CMN)HTNews.h \
  104.     $(CMN)HTGopher.h \
  105.     $(CMN)HTUtils.h $(CMN)tcp.h $(CMN)HText.h \
  106.     $(CMN)HTTelnet.h \
  107.     $(CMN)HTWAIS.h  $(CMN)HTWSRC.h
  108.  
  109. SOURCES = $(CFILES) $(HFILES) $(CMN)Version.make \
  110.     $(CMN)CommonMakefile $(CMN)Makefile \
  111.     $(WWW)/README.txt $(WWW)/Copyright.txt $(WWW)/BUILD $(WWW)/Makefile
  112. SPECIFIC = $(WWW)/All/*/Makefile.include $(WWW)/All/Implementation/Makefile*
  113.  
  114.  
  115. #    Library
  116. #
  117. #  On SGI, ranlib is unnecessary and does not exist so we ignore errors
  118. # for that step
  119. $(LOB)/libwww.a : $(COMMON)
  120.     ar r $(LOB)/libwww.a $(COMMON)
  121.     -ranlib $(LOB)/libwww.a
  122.  
  123. #    Clean up everything generatable except final products
  124. clean :
  125.     rm $(LOB)/*.o $(LOB)/.created
  126.     -rmdir $(LOB)
  127.  
  128. #    Clean up everything generatable including final products
  129.  
  130. cleanall : clean
  131.     rm $(LOB)/libwww.a
  132.  
  133. #    Install W3 library into system space (not normally necessary)
  134.  
  135. install : libwww.a
  136.     if [ ! -r $(LIBDIR) ] mkdir $(LIBDIR)
  137.     cp libwww.a $(LIBDIR)/libwww.a
  138.     
  139. uninstall :
  140.     rm $(LIBDIR)/libwww.a
  141.  
  142. #        Distribution use only:
  143. #        ----------------------
  144.  
  145. #    Needs www version 2.4 or later to do this
  146. inc : $(HFILES)
  147.     echo Include files generated from hypertext.
  148.  
  149. binary : /pub/www/bin/$(WWW_MACH)/libwww_$(VC).a
  150.     echo FTP archive binary Libray $(VC) for $(WWW_MACH) up to date.
  151.  
  152.  
  153. /pub/www/bin/$(WWW_MACH)/libwww_$(VC).a : libwww.a
  154.     -mkdir /pub/www/bin/$(WWW_MACH)
  155.     cp libwww.a /pub/www/bin/$(WWW_MACH)/libwww_$(VC).a
  156.  
  157. #    Source Distribution:
  158.  
  159. distribute :  /pub/www/README.txt /pub/www/Copyright.txt
  160.     (cd $(WWW)/..; WWW=WWW ABS=`pwd`/ make $(MFLAGS) \
  161.         -f WWW/Library/Implementation/CommonMakefile \
  162.         /pub/www/src/WWWLibrary_$(VC).tar.Z)
  163.     echo Distribution of Library version $(VC) up to date.
  164.  
  165. /pub/www/src/WWWLibrary_$(VC).tar.Z : $(SOURCES)
  166.     tar cf /pub/www/src/WWWLibrary_$(VC).tar \
  167.         $(SOURCES)  $(SPECIFIC) $(WC)/*/Makefile $(WC)/vms/descrip.mms
  168.     compress /pub/www/src/WWWLibrary_$(VC).tar
  169.  
  170.  
  171. #    Hypertext supplied in text format
  172. #    ---------------------------------
  173.  
  174. $(WWW)/README.txt : $(WWW)/../README.html
  175.     www -n -p66 http://info.cern.ch/hypertext/README.html \
  176.         > $(WWW)/README.txt
  177. /pub/www/README.txt : $(WWW)/README.txt
  178.     cp $(WWW)/README.txt /pub/www/README.txt
  179.  
  180. $(WWW)/Copyright.txt : $(WWW)/../Copyright.html
  181.     www -n -p66 http://info.cern.ch/hypertext/Copyright.html \
  182.         > $(WWW)/Copyright.txt
  183. /pub/www/Copyright.txt : $(WWW)/Copyright.txt
  184.     cp $(WWW)/Copyright.txt /pub/www/Copyright.txt
  185.  
  186. #             Common code
  187. #            -----------
  188.  
  189. #    Directory for object files - .created checks it exists
  190.  
  191. OE = $(LOB)/.created
  192. $(OE) :
  193.     if [ ! -r $(WTMP) ] ; then mkdir $(WTMP); else echo OK ; fi
  194.     if [ ! -r $(WTMP)/Library ] ; then mkdir $(WTMP)/Library; else echo OK ; fi
  195.     if [ ! -r $(WTMP)/Library/$(WWW_MACH) ] ; \
  196.         then mkdir $(WTMP)/Library/$(WWW_MACH); else echo OK ; fi
  197.     touch $@
  198.  
  199. $(LOB)/HTList.o : $(OE) $(CMN)HTList.c $(CMN)HTUtils.h $(CMN)HTList.h
  200.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTList.c
  201.  
  202. $(LOB)/HTAnchor.o : $(OE) $(CMN)HTAnchor.c $(CMN)HTUtils.h $(CMN)HTList.h
  203.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAnchor.c
  204.  
  205. $(LOB)/HTFormat.o : $(OE) $(CMN)HTFormat.c $(CMN)HTUtils.h $(CMN)HTList.h
  206.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFormat.c
  207.  
  208. $(LOB)/HTInit.o : $(OE) $(CMN)HTInit.c $(CMN)HTUtils.h $(CMN)HTList.h
  209.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTInit.c
  210.  
  211. $(LOB)/HTMIME.o : $(OE) $(CMN)HTMIME.c $(CMN)HTUtils.h $(CMN)HTList.h
  212.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMIME.c
  213.  
  214. $(LOB)/HTHistory.o : $(OE) $(CMN)HTHistory.c $(CMN)HTUtils.h $(CMN)HTList.h
  215.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTHistory.c
  216.  
  217. $(LOB)/HTNews.o : $(OE) $(CMN)HTNews.c $(CMN)HTUtils.h $(CMN)HTList.h
  218.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTNews.c
  219.  
  220. $(LOB)/HTGopher.o : $(OE) $(CMN)HTGopher.c $(CMN)HTUtils.h $(CMN)HTList.h
  221.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTGopher.c
  222.  
  223. $(LOB)/HTTelnet.o : $(OE) $(CMN)HTTelnet.c $(CMN)HTUtils.h $(CMN)HTTelnet.h
  224.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTelnet.c
  225.  
  226. $(LOB)/HTStyle.o : $(OE) $(CMN)HTStyle.c $(CMN)HTUtils.h
  227.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTStyle.c
  228.  
  229. $(LOB)/HTAtom.o : $(OE) $(CMN)HTAtom.c $(CMN)HTUtils.h
  230.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAtom.c
  231.  
  232. $(LOB)/HTChunk.o : $(OE) $(CMN)HTChunk.c $(CMN)HTUtils.h
  233.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTChunk.c
  234.  
  235. $(LOB)/HTString.o : $(OE) $(CMN)HTString.c $(CMN)HTUtils.h $(CMN)Version.make
  236.     $(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTString.c
  237.  
  238. $(LOB)/HTAlert.o : $(OE) $(CMN)HTAlert.c $(CMN)HTUtils.h $(CMN)Version.make
  239.     $(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTAlert.c
  240.  
  241. $(LOB)/HTRules.o : $(OE) $(CMN)HTRules.c $(CMN)HTUtils.h $(CMN)Version.make
  242.     $(CC) -c -o $@ $(CFLAGS2) -DVC=\"$(VC)\" $(CMN)HTRules.c
  243.  
  244. $(LOB)/SGML.o : $(OE) $(CMN)SGML.c $(CMN)HTUtils.h
  245.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)SGML.c
  246.  
  247. $(LOB)/HTML.o : $(OE) $(CMN)HTML.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
  248.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTML.c
  249.  
  250. $(LOB)/HTMLGen.o : $(OE) $(CMN)HTMLGen.c $(CMN)HTUtils.h $(CMN)HTMLDTD.h
  251.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLGen.c
  252.  
  253. $(LOB)/HTMLDTD.o : $(OE) $(CMN)HTMLDTD.c $(CMN)SGML.h
  254.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTMLDTD.c
  255.  
  256. $(LOB)/HTPlain.o : $(OE) $(CMN)HTPlain.c $(CMN)HTPlain.h $(CMN)HTStream.h
  257.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTPlain.c
  258.  
  259. $(LOB)/HTWAIS.o : $(OE) $(CMN)HTWAIS.c $(CMN)HTUtils.h $(CMN)HTList.h
  260.     $(CC) -c -o $@ $(CFLAGS2) $(WAISINC) $(CMN)HTWAIS.c
  261.  
  262. $(LOB)/HTWSRC.o : $(OE) $(CMN)HTWSRC.c $(CMN)HTUtils.h $(CMN)HTList.h
  263.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWSRC.c
  264.  
  265. $(LOB)/HTWriter.o : $(OE) $(CMN)HTWriter.c $(CMN)HTWriter.h $(CMN)HTStream.h
  266.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTWriter.c
  267.  
  268. $(LOB)/HTFWriter.o : $(OE) $(CMN)HTFWriter.c $(CMN)HTFWriter.h $(CMN)HTStream.h
  269.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFWriter.c
  270.  
  271. #    Communications & Files
  272.  
  273. $(LOB)/HTTP.o : $(OE) $(CMN)HTTP.c $(CMN)HTUtils.h
  274.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTP.c
  275.  
  276. $(LOB)/HTTCP.o : $(OE) $(CMN)HTTCP.c $(CMN)HTUtils.h
  277.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTTCP.c
  278.  
  279. $(LOB)/HTFile.o : $(OE) $(CMN)HTFile.c $(CMN)HTUtils.h
  280.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFile.c
  281.  
  282. $(LOB)/HTBTree.o : $(OE) $(CMN)HTBTree.c $(CMN)HTUtils.h
  283.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTBTree.c
  284.  
  285. $(LOB)/HTFTP.o : $(OE) $(CMN)HTFTP.c $(CMN)HTUtils.h
  286.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTFTP.c
  287.  
  288. $(LOB)/HTAccess.o : $(OE)  $(CMN)HTAccess.c $(CMN)HTUtils.h
  289.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTAccess.c
  290.  
  291. $(LOB)/HTParse.o : $(OE) $(CMN)HTParse.c $(CMN)HTUtils.h
  292.     $(CC) -c -o $@ $(CFLAGS2) $(CMN)HTParse.c
  293.